/*****************************************************************************
 *   Copyright 2005 Tim A Wang
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 ****************************************************************************/
package com.jb.web.renderer;

import com.jb.web.bean.InternalFrame;
import com.jb.web.context.WebContext;

import com.jb.faces.component.UIComponent;


/**
 * DOCUMENT ME!
 *
 * @author $author$
 * @version $Revision$
 */
public class InternalFrameRenderer extends DefaultRenderer {
    /**
     * DOCUMENT ME!
     *
     * @param pCtx DOCUMENT ME!
     * @param itemToRender DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public StringBuffer render(WebContext pCtx, UIComponent itemToRender) {
        StringBuffer html = new StringBuffer("");
        InternalFrame hItem = (InternalFrame) itemToRender;
        String src = evaluate(pCtx, hItem, hItem.getSrc());

        if (!pCtx.isRunTime()) {
            html.append("<div ").append(getEditScript(pCtx, hItem)).append(">");
        }

        html.append("<iframe ").append(addTagProperty("scrolling", hItem.isScrolling() ? "yes" : "no", null))
            .append(getEditScript(pCtx, hItem)).append(addTagProperty("style", hItem.getStyle(pCtx), null))
            .append(addTagProperty("class", hItem.getStyleClass(), null)).append(addTagProperty("src", src, null))
            .append("></iframe>");

        if (!pCtx.isRunTime()) {
            html.append("&nbsp;</div>");
        }

        return html;
    }
}
